1. Field of the Invention
The present invention relates generally to load balancing in a network device.
2. Description of the Related Art
FIG. 1 is a schematic diagram of a network 100 in accordance with the prior art. Network 100 includes a plurality of transmitting network devices X1-Xn, which transmit information over network 100 using network switches 104, 106.
Transmitting network devices X1-Xn are coupled by a plurality of network device links 108 to network switch 104. Illustratively, network device links 108 are 100 Mb/s links. Network switch 104 arbitrates and allocates bandwidth between network device links 108 and thus transmitting network devices X1-Xn.
Network switch 104 is coupled to network switch 106 with a network link 110, e.g., a 1 Gb/s ethernet link. A plurality of receiving network devices R1-Rn are coupled by a plurality of network device links 114 to network switch 106. Illustratively, network device links 114 are also 100 Mb/s links. Network switch 106 arbitrates and allocates bandwidth between network device links 114 and thus receiving network devices R1-Rn.
Network 100 is susceptible to congestion which effectively shuts down network link 110 between network switch 104 and network switch 106. For example, assume a case where transmitting network devices X1 and X2 each send 100 Mb/s traffic, for a total of 200 Mb/s, destined for receiving network device R1. Since network device link 114 between receiving network device R1 and network switch 106 is a 100 Mb/s link, congestion occurs in network switch 106.
As a result of this congestion, network switch 106 drops incoming packets until the congestion is alleviated. However, during this time, network link 110 between network switch 104 and network switch 106 is effectively shut down.
To minimize loss of bandwidth, in certain applications, a plurality of network links 110A (as indicated by the dash lines) between network switch 104 and network switch 106 are used. Network switch 104 load balances the network traffic between network switch 104 and network switch 106 on the plurality of network links 110A using any one of a number of techniques, e.g., a hashing algorithm.
If congestion occurs, one or more of network links 110A becomes shut down. However, network traffic continues across the remaining functioning network links 110A.
Providing a plurality of network links 110A is sometimes economically feasible if the distance between network switch 104 and network switch 106 is relatively short. However, as the distance between network switches increases, it becomes cost prohibitive to provide a plurality of network links 110A.